﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SharpArch.Core.DomainModel;
using System.ComponentModel.DataAnnotations;

namespace Magalie.Domaine
{
    /// <summary>
    /// Projet
    /// </summary>
    public class Projet : EntityWithTypedId<Guid>
    {
        /// <summary>
        /// Nom du projet
        /// </summary>
        [Required]
        public virtual string Nom { get; set; }

        /// <summary>
        /// Nom du projet
        /// </summary>
        [Required]
        public virtual string MappingUri { get; set; }

        private DateTime _dateDebut = DateTime.Now;

        /// <summary>
        /// Date de début du projet
        /// </summary>
        public virtual DateTime DateDebut
        {
            get { return _dateDebut; }
            set { _dateDebut = value; }
        }

        /// <summary>
        /// Date de fin du projet
        /// </summary>
        public virtual DateTime? DateFin { get; set; }

        /// <summary>
        /// Organisation à laquelle le projet est rattaché
        /// </summary>
        public virtual Organisation Organisation { get; set; }

        /// <summary>
        /// Budget du projet
        /// </summary>
        public virtual double Budget { get; set; }

        /// <summary>
        /// Liste des acteurs du projet
        /// </summary>
        public virtual IList<ActeurProjet> Acteurs { get; set; }
    }
}
